package com.nercel.dsj.gksales.util.geotools;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author sunlin
 * @date 2018-12-19
 * @author lzugis
 * 提供了百度坐标（BD09）、国测局坐标（火星坐标，GCJ02）、和WGS84坐标系之间的转换
 * 命名规则：
 * 1、bd代表百度的坐标，gcj代表国测局火星坐标，wgs代表wgs84坐标
 */
public class CoordsUtil {

	/**
	 * 定义一些常量
	 */
	private static final double X_PI = 3.14159265358979324 * 3000.0 / 180.0;
	private static final double PI = 3.1415926535897932384626;
	private static final double A = 6378245.0;
	private static final double EE = 0.00669342162296594323;

	/**
	 * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换
	 * 即 百度 转 谷歌、高德
	 */
	public static double[] bd09togcj02(double bdLon, double bdLat) {
		double x = bdLon - 0.0065;
		double y = bdLat - 0.006;
		double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
		double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);
		double ggLon = z * Math.cos(theta);
		double ggLat = z * Math.sin(theta);
		return new double[]{ggLon, ggLat};
	}

	/**
	 * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换
	 * 即谷歌、高德 转 百度
	 */
	public static double[] gcj02tobd09(double gcjLon, double gcjLat) {
		double z = Math.sqrt(gcjLon * gcjLon + gcjLat * gcjLat) + 0.00002 * Math.sin(gcjLat * X_PI);
		double theta = Math.atan2(gcjLat, gcjLon) + 0.000003 * Math.cos(gcjLon * X_PI);
		double bdLon = z * Math.cos(theta) + 0.0065;
		double bdLat = z * Math.sin(theta) + 0.006;
		return new double[]{bdLon, bdLat};
	}

	/**
	 * WGS84转GCj02
	 */
	public static double[] wgs84togcj02(double wgsLon, double wgsLat) {
		if (outOfChina(wgsLon, wgsLat)) {
			return new double[]{wgsLon, wgsLat};
		} else {
			double dlat = transformlat(wgsLon - 105.0, wgsLat - 35.0);
			double dlon = transformlon(wgsLon - 105.0, wgsLat - 35.0);
			double radlat = wgsLat / 180.0 * PI;
			double magic = Math.sin(radlat);
			magic = 1 - EE * magic * magic;
			double sqrtmagic = Math.sqrt(magic);
			dlat = (dlat * 180.0) / ((A * (1 - EE)) / (magic * sqrtmagic) * PI);
			dlon = (dlon * 180.0) / (A / sqrtmagic * Math.cos(radlat) * PI);
			double mglat = wgsLat + dlat;
			double mglon = wgsLon + dlon;
			return new double[]{mglon, mglat};
		}
	}

	/**
	 * GCJ02 转换为 WGS84
	 */
	public static double[] gcj02towgs84(double gcjLon, double gcjLat) {
		if (outOfChina(gcjLon, gcjLat)) {
			return new double[]{gcjLon, gcjLat};
		} else {
			double dlat = transformlat(gcjLon - 105.0, gcjLat - 35.0);
			double dlng = transformlon(gcjLon - 105.0, gcjLat - 35.0);
			double radlat = gcjLat / 180.0 * PI;
			double magic = Math.sin(radlat);
			magic = 1 - EE * magic * magic;
			double sqrtmagic = Math.sqrt(magic);
			dlat = (dlat * 180.0) / ((A * (1 - EE)) / (magic * sqrtmagic) * PI);
			dlng = (dlng * 180.0) / (A / sqrtmagic * Math.cos(radlat) * PI);
			double mglat = gcjLat + dlat;
			double mglng = gcjLon + dlng;
			return new double[]{gcjLon * 2 - mglng, gcjLat * 2 - mglat};
		}
	}

	/**
	 * 百度转换为wgs84
	 */
	public static double[] bd09towgs84(double bdLon, double bdLat) {
		//1、bd09->gcj
		double[] bd09Gcj02 = bd09togcj02(bdLon, bdLat);
		//2、gcj->wgs84
		return gcj02towgs84(bd09Gcj02[0], bd09Gcj02[1]);
	}

	/**
	 * wgs84z转换为百度坐标
	 */
	public static  double[] wgs84tobd09(double wgsLon, double wgsLat) {
		// 1、wgs84->gcj
		double[] wgs84Gcj02 = wgs84togcj02(wgsLon, wgsLat);
		//2、gcj->bd09
		return gcj02tobd09(wgs84Gcj02[0], wgs84Gcj02[1]);
	}

	/**
	 * 判断是否中国境内
	 */
	private static  boolean outOfChina(double lon, double lat) {
		// 纬度3.86~53.55,经度73.66~135.05
		return !(lon > 73.66 && lon < 135.05 && lat > 3.86 && lat < 53.55);
	}

	/**
	 * 经度转换
	 */
	private static double transformlon(double lon, double lat) {
		double ret = 300.0 + lon + 2.0 * lat + 0.1 * lon * lon + 0.1 * lon * lat + 0.1 * Math.sqrt(Math.abs(lon));
		ret += (20.0 * Math.sin(6.0 * lon * PI) + 20.0 * Math.sin(2.0 * lon * PI)) * 2.0 / 3.0;
		ret += (20.0 * Math.sin(lon * PI) + 40.0 * Math.sin(lon / 3.0 * PI)) * 2.0 / 3.0;
		ret += (150.0 * Math.sin(lon / 12.0 * PI) + 300.0 * Math.sin(lon / 30.0 * PI)) * 2.0 / 3.0;
		return ret;
	}

	/**
	 * 纬度转换
	 */
	private static double transformlat(double lon, double lat) {
		double ret = -100.0 + 2.0 * lon + 3.0 * lat + 0.2 * lat * lat + 0.1 * lon * lat + 0.2 * Math.sqrt(Math.abs(lon));
		ret += (20.0 * Math.sin(6.0 * lon * PI) + 20.0 * Math.sin(2.0 * lon * PI)) * 2.0 / 3.0;
		ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
		ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
		return ret;
	}

	public static void main(String[] args) {

		String xxx = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff8040\",\"fill-opacity\":0.5,\"id\":17},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.65797090530394,31.35299559043824],[120.6516408920288,31.352647426601024],[120.64310073852538,31.34658183924518],[120.64505338668823,31.337931745042464],[120.64269304275511,31.337913417727464],[120.64078330993652,31.337546870676846],[120.63921689987183,31.338774797675832],[120.63520431518553,31.33824330885215],[120.63634157180786,31.335494180806574],[120.63934564590453,31.335475853016757],[120.64357280731201,31.33576909722538],[120.64752101898193,31.335420869625956],[120.65048217773438,31.333386461580403],[120.65219879150389,31.33206682203546],[120.65464496612549,31.331150394798364],[120.65777778625488,31.33133368095962],[120.68005084991456,31.336172306520144],[120.68540453910829,31.337317778045108],[120.68530797958374,31.337556034370515],[120.68532943725586,31.338124181634985],[120.67994356155396,31.358767592529546],[120.67570567131042,31.35811482434894],[120.67520141601561,31.35796136590817],[120.67732572555542,31.349394781115965],[120.66857099533081,31.34782797371027],[120.6652021408081,31.347388163431237],[120.66232681274414,31.34727821054016],[120.65998792648317,31.347204908541368],[120.65812110900877,31.34724155954793],[120.65797090530394,31.35299559043824]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#1d8d25\",\"fill-opacity\":0.5,\"id\":35},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.72369575500488,31.381302492946528],[120.72678565979004,31.365675205404933],[120.72695732116699,31.36576681489715],[120.73457479476929,31.367910451524967],[120.73446750640868,31.36803870173897],[120.73395252227785,31.3684417727007],[120.73337316513062,31.36910133963654],[120.73300838470459,31.36950440604081],[120.73262214660646,31.370017397146015],[120.73227882385254,31.370475422552214],[120.73212862014769,31.3709700874835],[120.73206424713135,31.371446429030417],[120.73202133178712,31.371922768162783],[120.73202133178712,31.372380784282168],[120.73204278945923,31.37289375968553],[120.73217153549193,31.373626576832464],[120.73309421539305,31.37939731213881],[120.72369575500488,31.381302492946528]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#008040\",\"fill-opacity\":0.5,\"id\":13},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.73330879211427,31.379324035182258],[120.73226809501648,31.373406732288483],[120.73216080665588,31.37294872116979],[120.73217153549193,31.372536509254218],[120.73217153549193,31.372280020927455],[120.73218226432802,31.372023531900588],[120.73217153549193,31.371730400726918],[120.73221445083617,31.37143726863885],[120.73230028152467,31.371043370955583],[120.7323968410492,31.37081435991561],[120.73251485824585,31.37041129912975],[120.73280453681946,31.36992579179689],[120.73294401168822,31.369650975213762],[120.73323369026184,31.3694036396018],[120.73351263999939,31.36910133963654],[120.73389887809752,31.36878987804922],[120.73423147201537,31.3684875761097],[120.73467135429381,31.36813946964147],[120.73473572731018,31.36802038029054],[120.74270725250244,31.370310533663144],[120.74558258056639,31.371006729226703],[120.74897289276122,31.371629636674772],[120.74980974197388,31.371666278160784],[120.75060367584229,31.370576187842],[120.75242757797241,31.368111987496956],[120.75553894042967,31.368973090872664],[120.7551097869873,31.37010900240583],[120.75457334518431,31.372252539993767],[120.75433731079103,31.3737914599029],[120.75457334518431,31.37476243211551],[120.73330879211427,31.379324035182258]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff8040\",\"fill-opacity\":0.5,\"id\":16},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.75974464416504,31.35191444588829],[120.76824188232422,31.35286731970088],[120.78309059143065,31.357375014932103],[120.78257560729979,31.360453316761028],[120.78193187713622,31.361882494063085],[120.78137397766113,31.36261539707194],[120.78098773956299,31.36283526686034],[120.77944278717041,31.36576681489715],[120.77832698822021,31.368185273197795],[120.77789783477782,31.368111987496956],[120.77755451202393,31.368111987496956],[120.76266288757323,31.36781884412212],[120.76201915740965,31.36781884412212],[120.75626850128172,31.36613325197317],[120.75974464416504,31.35191444588829]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#7d8e1c\",\"fill-opacity\":0.5,\"id\":32},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.7697546482086,31.36802038029054],[120.77832698822021,31.368185273197795],[120.78094482421875,31.362926879120405],[120.78111648559569,31.36283526686034],[120.78152418136595,31.362578752057217],[120.78199625015259,31.361809203447933],[120.78255414962769,31.360471639684416],[120.78304767608641,31.357448309004088],[120.78294038772584,31.357338367874675],[120.7806658744812,31.35660542372672],[120.7812237739563,31.355176166204917],[120.78781127929686,31.356477157913393],[120.79238176345825,31.357375014932103],[120.79606175422667,31.357979689317272],[120.79905509948732,31.349862069499697],[120.80244541168213,31.35074166486487],[120.79987049102783,31.35841028840268],[120.80053567886351,31.35855687487543],[120.80188751220703,31.358749269274053],[120.80622196197508,31.359537166037075],[120.81229448318481,31.360902227356622],[120.81459045410156,31.361369458557057],[120.81701517105101,31.361845848762645],[120.81937551498413,31.362166494657114],[120.82146763801575,31.36266120332026],[120.82308769226074,31.363045974925008],[120.8262312412262,31.36372390201561],[120.82894563674925,31.36432853556607],[120.82540512084962,31.372912080183866],[120.82446098327637,31.372838798169113],[120.8210277557373,31.3733517710721],[120.8122730255127,31.371153296056526],[120.81210136413573,31.371446429030417],[120.81064224243164,31.3737914599029],[120.80806732177733,31.37408458464704],[120.80703735351562,31.375476914693845],[120.80523490905762,31.382621441639674],[120.8034324645996,31.383170998129124],[120.79811096191406,31.382584804426063],[120.79493522644042,31.3817055070121],[120.7942485809326,31.38093611502282],[120.79227447509764,31.3813391306603],[120.79115867614748,31.38093611502282],[120.7900857925415,31.381119304163292],[120.78371822834015,31.399766089146926],[120.78397035598755,31.401542652436593],[120.78371286392212,31.402147042591032],[120.7842493057251,31.40273311417555],[120.78463554382326,31.40390524636559],[120.78600883483887,31.404711078754563],[120.78678131103516,31.405993070567618],[120.78738212585449,31.405773301786304],[120.79012870788574,31.409326167319783],[120.79072952270508,31.412805647503586],[120.78999996185303,31.414453777289072],[120.78987121582033,31.415332768002248],[120.78858375549318,31.41723721962633],[120.7860517501831,31.418995140653568],[120.7840347290039,31.42177844823299],[120.78497886657715,31.42679551771726],[120.78472137451172,31.426905377549428],[120.7833480834961,31.426502557535553],[120.7792282104492,31.42324331378241],[120.77579498291016,31.422364397198447],[120.77047348022461,31.418409170638487],[120.76789855957031,31.4156257630764],[120.76686859130861,31.41467352573949],[120.7657527923584,31.414453777289072],[120.76369285583496,31.41386777890479],[120.76764106750488,31.408373866042837],[120.76952934265137,31.407934339116824],[120.77073097229002,31.40844712033033],[120.7715892791748,31.407861084429015],[120.77553749084473,31.40639597866334],[120.77811241149902,31.406689001646452],[120.78377723693846,31.39093771930801],[120.78858375549318,31.381760463341625],[120.78899145126343,31.381394087204168],[120.78905582427977,31.381137623057686],[120.78886270523073,31.380423183528922],[120.78901290893553,31.379910249234253],[120.7888412475586,31.379470589038192],[120.78858375549318,31.378994288170443],[120.78768253326415,31.37877445618619],[120.78669548034668,31.37877445618619],[120.7859230041504,31.378994288170443],[120.78523635864259,31.379104203969636],[120.78446388244627,31.37895764954212],[120.78351974487305,31.37829815178894],[120.78257560729979,31.37833479067448],[120.78008651733398,31.378151596103958],[120.77952861785889,31.37800504019036],[120.77892780303955,31.377455453478113],[120.77841281890869,31.377418814249634],[120.77789783477782,31.37760201024906],[120.77742576599121,31.3776752885488],[120.77665328979491,31.37778520589125],[120.77626705169678,31.377821844976836],[120.77558040618896,31.37763864940607],[120.77467918395995,31.37708906055048],[120.77364921569824,31.3771073802308],[120.77254414558409,31.376965402614882],[120.77183604240417,31.375330354607893],[120.77141761779784,31.374753272047165],[120.77153563499449,31.374020463687394],[120.77131032943726,31.37298994226189],[120.7705807685852,31.37123344969491],[120.7697546482086,31.36802038029054]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#00ff80\",\"fill-opacity\":0.5,\"id\":34},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.83510398864745,31.28801324078709],[120.83594083786011,31.287637330939038],[120.83624124526979,31.289425181462658],[120.83600521087646,31.290250331807485],[120.83467483520508,31.295457780686725],[120.83364486694336,31.29806139724146],[120.83072662353516,31.306238485709372],[120.82643508911133,31.30524847239738],[120.82355976104736,31.30477179561089],[120.81980466842653,31.30414844540506],[120.82016944885254,31.302571717652498],[120.81974029541016,31.302571717652498],[120.81849038600922,31.30243191929639],[120.81766694784163,31.30231503854441],[120.81728875637054,31.302381500166256],[120.8170285820961,31.302376916607635],[120.81640630960463,31.30231733032525],[120.8150088787079,31.302131695896247],[120.81344783306122,31.30190251708438],[120.81501960754395,31.296007846514858],[120.81643581390381,31.29476102602926],[120.81819534301758,31.294247624564747],[120.82222938537598,31.29505439703912],[120.82300186157227,31.29476102602926],[120.82437515258789,31.294320967802303],[120.82566261291504,31.294320967802303],[120.82677841186523,31.29358753285845],[120.82823753356934,31.29256071434936],[120.83055496215819,31.291753920530994],[120.83510398864745,31.28801324078709]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ffff80\",\"fill-opacity\":0.5,\"id\":11},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.81064224243164,31.3114450511493],[120.81083536148071,31.31071174948448],[120.81137180328368,31.310216767633513],[120.81219792366028,31.30758598711174],[120.81213355064392,31.30688932212645],[120.81267535686493,31.305317223657948],[120.81345319747925,31.30193001857122],[120.81683278083801,31.302395250840796],[120.81721901893614,31.302402126177306],[120.8172807097435,31.302406709734704],[120.81762671470644,31.302342539910846],[120.81790566444396,31.302356290591064],[120.81799149513246,31.30236545771009],[120.81808805465698,31.302381500166256],[120.81815510988235,31.30238608372465],[120.81830263137816,31.302413585070372],[120.81849306821823,31.302461712406078],[120.81895709037782,31.302548799903406],[120.81933528184891,31.302594635396012],[120.82007288932799,31.30266338859308],[120.8201104402542,31.302690889857868],[120.81981539726257,31.303992607209207],[120.81982612609863,31.3041667792935],[120.82646191120148,31.30526680607176],[120.83068370819092,31.3062476524507],[120.83074808120726,31.3062934861439],[120.82790493965149,31.314135302739952],[120.82735776901245,31.31566142493318],[120.81064224243164,31.3114450511493]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#00ff80\",\"fill-opacity\":0.5,\"id\":10},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.72815895080566,31.34025928503868],[120.72863101959227,31.327979487709293],[120.73927402496338,31.329372500511315],[120.76300621032715,31.33201183665292],[120.78240394592284,31.334064602482243],[120.79304695129393,31.335640802996597],[120.8023166656494,31.337363596616097],[120.80068588256836,31.342788357712294],[120.80004215240479,31.344254455668054],[120.79952716827391,31.346416908446553],[120.79874396324158,31.348744238519775],[120.79622268676756,31.351566278048384],[120.78772544860838,31.34997201937024],[120.78255414962769,31.349037441373632],[120.77901363372803,31.348396058943646],[120.77047348022461,31.346856723266985],[120.75266361236572,31.343887933321163],[120.742449760437,31.342458482523462],[120.73219299316406,31.340845742727726],[120.72815895080566,31.34025928503868]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff0080\",\"fill-opacity\":0.5,\"id\":8},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.75552821159363,31.331006056695138],[120.75553089380264,31.330948779608676],[120.7558822631836,31.32383698573887],[120.75648307800293,31.311518381001783],[120.75674057006835,31.30631181961495],[120.7569122314453,31.300481596009618],[120.75706243515013,31.300399090256775],[120.75731992721559,31.300481596009618],[120.75753450393677,31.300435759489183],[120.75772762298584,31.300582436276073],[120.75794219970703,31.300582436276073],[120.75815677642821,31.30049076331103],[120.75836062431334,31.300334919065737],[120.75853228569031,31.300087401205243],[120.75880050659178,31.299876552144628],[120.75902581214905,31.299674869993044],[120.75945496559144,31.299610698308843],[120.75979828834534,31.299656535230586],[120.7598841190338,31.29959236353389],[120.76018452644348,31.29971153950725],[120.76012015342712,31.29982154796427],[120.76037764549254,31.299885719504918],[120.76072096824646,31.29989488686429],[120.76112866401672,31.299867384783475],[120.7614290714264,31.299812380597775],[120.7616114616394,31.29971153950725],[120.76178312301634,31.2995556939733],[120.76212644577026,31.299409015588246],[120.76245903968811,31.29918899758261],[120.76301693916321,31.29900564885221],[120.7637572288513,31.298895639442726],[120.76414346694946,31.298904806898406],[120.76460480690001,31.29900564885221],[120.76483011245728,31.29900564885221],[120.7650125026703,31.29887730452867],[120.76513051986693,31.298776462437544],[120.76533436775206,31.298712290141555],[120.76725482940672,31.298428098019762],[120.76884269714357,31.298024727085167],[120.77028036117552,31.297786370721344],[120.77201843261717,31.297694695036288],[120.77291965484619,31.297474673028294],[120.7733702659607,31.297438002643688],[120.77573060989381,31.297272985736402],[120.77794075012206,31.297291320962586],[120.78111648559569,31.2975846840965],[120.78261852264406,31.297731365321003],[120.7842493057251,31.297768035591467],[120.7862663269043,31.297768035591467],[120.78699588775633,31.297841376089572],[120.78695297241211,31.299454852608104],[120.79218864440918,31.298868137070293],[120.79454898834229,31.298574777931588],[120.79635143280028,31.297254650506655],[120.79841136932374,31.297731365321003],[120.80004215240479,31.296887945162425],[120.8007287979126,31.29751134339863],[120.80140471458435,31.29761677063387],[120.8015549182892,31.29795138672973],[120.80042839050293,31.306055150695734],[120.79716682434082,31.31683464319898],[120.79296112060545,31.331278695148722],[120.79180240631102,31.335292574922402],[120.7555228471756,31.331045005093998],[120.75552821159363,31.331006056695138]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#8000ff\",\"fill-opacity\":0.5,\"id\":14},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.74365139007567,31.329775737211722],[120.74395179748535,31.316339693525457],[120.75219154357909,31.31694463166204],[120.75234174728394,31.313424937128595],[120.75631141662599,31.313534929573812],[120.75549602508544,31.33105875158387],[120.74365139007567,31.329775737211722]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff8080\",\"fill-opacity\":0.5,\"id\":36},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.73618412017822,31.32541335753113],[120.7362484931946,31.321820657765585],[120.73094844818115,31.321142428651317],[120.73182821273804,31.317512903341466],[120.73631286621094,31.317842865968736],[120.73631286621094,31.3156980882252],[120.74395179748535,31.316358025041232],[120.74369430541991,31.32629318147251],[120.73618412017822,31.32541335753113]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#408080\",\"fill-opacity\":0.5,\"id\":28},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.72000503540038,31.310345096511288],[120.7203483581543,31.30524847239738],[120.72049856185915,31.305220971879084],[120.72105646133421,31.305230138719413],[120.72154998779297,31.30547764307087],[120.72176456451416,31.305660979208312],[120.72197914123534,31.30576181393185],[120.72224736213684,31.305752647143272],[120.72261214256287,31.305660979208312],[120.72350263595581,31.305413475338494],[120.7239532470703,31.30543180898076],[120.72475790977477,31.30549597670067],[120.72561621665955,31.30517513766412],[120.72649598121642,31.305202638195773],[120.72730064392088,31.305917649201387],[120.7273542881012,31.30567931280244],[120.72747230529785,31.305505143514235],[120.7277512550354,31.305413475338494],[120.72794437408446,31.30545930943751],[120.72842717170714,31.30545930943751],[120.72871685028078,31.305404308516],[120.72904944419861,31.30519347135277],[120.72950005531311,31.30512930342684],[120.72997212409973,31.305101802873782],[120.7328152656555,31.305065135457216],[120.7327938079834,31.305138470276074],[120.73298692703248,31.30523930555883],[120.73346972465517,31.30491846564821],[120.73407053947447,31.304735128065882],[120.73478937149046,31.304625125345257],[120.73629140853883,31.304450954108237],[120.73672056198119,31.304496788675532],[120.73796510696411,31.304487621763855],[120.73798656463623,31.304597624645034],[120.73966026306151,31.304588457743176],[120.7396924495697,31.30424011481162],[120.73991775512695,31.30424011481162],[120.73994994163512,31.303928438465412],[120.74044346809387,31.303919271498444],[120.74050784111022,31.303717597999523],[120.74090480804443,31.303717597999523],[120.74102282524109,31.303690097034394],[120.74131250381468,31.303653429068433],[120.74131250381468,31.30381843480294],[120.74120521545412,31.304661792933064],[120.740647315979,31.30598181659039],[120.74036836624146,31.307155155426056],[120.7400894165039,31.308163481812585],[120.73993921279907,31.30917179740655],[120.73991775512695,31.31073008209566],[120.75234174728394,31.31115173116841],[120.7522988319397,31.313424937128595],[120.75212717056274,31.316926300260462],[120.73631286621094,31.3156980882252],[120.7362699508667,31.310748414703305],[120.72927474975585,31.310528423176272],[120.72000503540038,31.310345096511288]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff8080\",\"fill-opacity\":0.5,\"id\":36},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.73285818099974,31.315294791227736],[120.73260068893433,31.31078507990786],[120.73618412017822,31.310803412504768],[120.73616266250609,31.315551434971415],[120.73285818099974,31.315294791227736]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff0000\",\"fill-opacity\":0.5,\"id\":33},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.71783781051637,31.31927269066008],[120.71916818618776,31.315322288805167],[120.72011232376099,31.310546755823154],[120.73257923126219,31.310720915790526],[120.7328474521637,31.315294791227736],[120.7327938079834,31.315294791227736],[120.72940349578857,31.314955653779464],[120.72940349578857,31.31521229844733],[120.72931766510008,31.317256264943133],[120.73182821273804,31.31748540640366],[120.73181748390199,31.317531234628852],[120.73099136352539,31.321105767478944],[120.72654962539673,31.320629170938993],[120.7224726676941,31.32018923353021],[120.71783781051637,31.31927269066008]]]}},{\"type\":\"Feature\",\"properties\":{},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.71455478668213,31.343008273862242],[120.71455478668213,31.343008273862242],[120.71455478668213,31.343008273862242],[120.71455478668213,31.343008273862242]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#e7b9ff\",\"fill-opacity\":0.5,\"id\":5},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.63593387603758,31.335347558388214],[120.63754320144652,31.332854942322577],[120.64069747924805,31.330233958638026],[120.64170598983765,31.32728297357766],[120.64417362213135,31.320225895059444],[120.64578294754028,31.314543187669532],[120.64897477626799,31.314960236726122],[120.64938783645628,31.31252666068451],[120.65252065658568,31.310491757871826],[120.65194129943848,31.315258127778698],[120.65606117248535,31.315899736076307],[120.6564474105835,31.31822782090597],[120.6615114212036,31.31892440203026],[120.66067457199097,31.32264552442849],[120.65097570419312,31.321179089809416],[120.64782142639162,31.33540254182189],[120.63593387603758,31.335347558388214]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#3ef9bc\",\"fill-opacity\":0.5,\"id\":31},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.64578294754028,31.314543187669532],[120.64940929412842,31.300334919065737],[120.65099716186522,31.294430982551656],[120.65048217773438,31.290140312178803],[120.65786361694336,31.287353105424756],[120.66434383392334,31.287591488172122],[120.66442966461182,31.285721084274076],[120.67176818847656,31.286582941660193],[120.672926902771,31.29278074782867],[120.67065238952635,31.29311079708458],[120.67344188690187,31.29868478771561],[120.65404415130615,31.29883146722788],[120.65258502960205,31.310381761872833],[120.64940929412842,31.31243499934119],[120.64889430999754,31.314964819672525],[120.64578294754028,31.314543187669532]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#0af5a9\",\"fill-opacity\":0.5,\"id\":26},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.65048217773438,31.323415393460444],[120.65093278884888,31.321197420383136],[120.66065311431885,31.32264552442849],[120.6614899635315,31.31892440203026],[120.65917253494261,31.318576112112215],[120.65966606140138,31.316413019567154],[120.67003011703491,31.318081171591643],[120.66966533660889,31.32029921807511],[120.67082405090333,31.3205191867795],[120.6741714477539,31.322773836370985],[120.67329168319702,31.328016146205037],[120.67127466201782,31.32775953643503],[120.66985845565797,31.32715466778074],[120.65048217773438,31.323415393460444]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#f0b80f\",\"fill-opacity\":0.5,\"id\":27},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.65194129943848,31.31514813734593],[120.65258502960205,31.31032676382517],[120.6584644317627,31.31062008637498],[120.65861463546752,31.30821848112326],[120.67917108535767,31.308291813487568],[120.67975044250488,31.317641222278326],[120.67601680755614,31.318081171591643],[120.67575931549072,31.31932768348387],[120.67151069641115,31.318557781028233],[120.65983772277832,31.316394688062093],[120.65194129943848,31.31514813734593]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ffb9b9\",\"fill-opacity\":0.5,\"id\":6},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.67335605621336,31.327869512136406],[120.67416071891783,31.32278300150305],[120.67493319511415,31.321014114485543],[120.67743301391603,31.32383698573887],[120.67648887634276,31.325230059841683],[120.67949295043945,31.32563331428737],[120.68550109863281,31.326953044032283],[120.69580078125001,31.327466267269838],[120.69584369659425,31.331388666738434],[120.69550037384033,31.332561689033238],[120.68618774414062,31.331388666738434],[120.68374156951903,31.329739079401246],[120.67335605621336,31.327869512136406]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#f2acff\",\"fill-opacity\":0.5,\"id\":12},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.6954574584961,31.332561689033238],[120.69586515426636,31.331425323906437],[120.69582223892212,31.32748459661945],[120.68558692932129,31.32691638512253],[120.68706750869751,31.32643981799663],[120.68951368331908,31.326384829326848],[120.69039344787596,31.326311511050513],[120.69241046905516,31.326109885496162],[120.69425582885741,31.32588992985342],[120.6955862045288,31.32488179324853],[120.69622993469237,31.32402028614064],[120.69635868072508,31.32185731865962],[120.69741010665892,31.32141738698917],[120.6998348236084,31.322517212311123],[120.6998562812805,31.321875649101283],[120.70363283157349,31.32143571751648],[120.70455551147461,31.319401007198977],[120.7061219215393,31.31813616511129],[120.70755958557127,31.316889637446565],[120.70897579193117,31.31593639927556],[120.71067094802856,31.31628469895671],[120.71197986602783,31.315679756580984],[120.71099281311035,31.313681585967647],[120.7193398475647,31.312838308584627],[120.71560621261597,31.32752125530791],[120.72867393493651,31.327979487709293],[120.72824478149414,31.34014932381501],[120.71506977081299,31.338096690717308],[120.69498538970946,31.33439450710001],[120.6954574584961,31.332561689033238]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#e4f986\",\"fill-opacity\":0.5,\"id\":37},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.65039634704588,31.290103638940728],[120.64885139465332,31.281705091727694],[120.64902305603026,31.27968786199273],[120.66945075988768,31.28214520884476],[120.6718111038208,31.286656290861213],[120.66447257995605,31.285702746797284],[120.66442966461182,31.28753647682236],[120.65786361694336,31.28727975676583],[120.65039634704588,31.290103638940728]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#eefa85\",\"fill-opacity\":0.5,\"id\":7},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.67056655883789,31.293147469152796],[120.68412780761719,31.291020465613105],[120.6873893737793,31.290213658612206],[120.69271087646484,31.29058038992317],[120.68944931030273,31.289406844706296],[120.68876266479492,31.287939892641734],[120.68919181823729,31.286692965440313],[120.69202423095703,31.286546267038297],[120.69648742675783,31.286106170462755],[120.69966316223143,31.285225971149053],[120.70112228393555,31.28317214079645],[120.70404052734375,31.28397900805578],[120.71665763854979,31.281118265709754],[120.72103500366211,31.281705091727694],[120.71931838989256,31.312948301714936],[120.71107864379883,31.31375491407894],[120.71037054061888,31.313424937128595],[120.70998430252077,31.31245333161699],[120.7107138633728,31.308621808420494],[120.71174383163451,31.308786805453458],[120.71249485015869,31.307961817398674],[120.71075677871704,31.3069351555075],[120.71086406707762,31.3052851397426],[120.712730884552,31.30469846050662],[120.71281671524048,31.303891770592195],[120.70987701416016,31.301416656159766],[120.7093620300293,31.301875015589474],[120.70773124694824,31.301673337715098],[120.7063150405884,31.30117830837517],[120.7017230987549,31.302571717652498],[120.69820404052733,31.30367176305321],[120.69279670715332,31.303708431012044],[120.68811893463135,31.29883146722788],[120.68623065948486,31.299014816297202],[120.684814453125,31.301288315119884],[120.68163871765137,31.30147165940906],[120.67987918853758,31.302131695896247],[120.67726135253905,31.30231503854441],[120.67756175994873,31.3048817981603],[120.67914962768553,31.3083284796483],[120.67485809326172,31.308181814919706],[120.67335605621336,31.29864811780188],[120.67056655883789,31.293147469152796]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#d7b4fe\",\"fill-opacity\":0.5,\"id\":18},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.71966171264648,31.304441787192108],[120.72026252746582,31.2991614952958],[120.72961807250977,31.29417428127009],[120.74163436889647,31.29307412500209],[120.74154853820801,31.295531122982634],[120.74729919433594,31.295677807403237],[120.7480502128601,31.297199644795967],[120.74532508850098,31.301361652878363],[120.7386302947998,31.3037817668869],[120.73047637939452,31.3048817981603],[120.71966171264648,31.304441787192108]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#f1580e\",\"fill-opacity\":0.5},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.72086334228516,31.28177844472319],[120.72309494018555,31.281411679175182],[120.72266578674315,31.288086588875352],[120.73013305664062,31.287939892641734],[120.72953224182129,31.294247624564747],[120.72026252746582,31.2991614952958],[120.72086334228516,31.28177844472319]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#5afae6\",\"fill-opacity\":0.5,\"id\":3},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.74154853820801,31.293147469152796],[120.72970390319824,31.29410093791839],[120.73004722595216,31.288086588875352],[120.72249412536621,31.288086588875352],[120.72318077087402,31.281264972556574],[120.74532508850098,31.281851797661616],[120.74189186096191,31.290360351307797],[120.74154853820801,31.293147469152796]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#e1fd82\",\"fill-opacity\":0.5,\"id\":30},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.73004722595216,31.281338325894403],[120.72970390319824,31.28009131139161],[120.74069023132324,31.254120322102274],[120.75433731079103,31.258669429766517],[120.75021743774413,31.26769362347472],[120.74901580810545,31.274369504052157],[120.74549674987793,31.282071856134568],[120.73004722595216,31.281338325894403]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ffb9b9\",\"fill-opacity\":0.5,\"id\":9},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.7163143157959,31.2811916191617],[120.71803092956542,31.279797893818127],[120.71545600891112,31.27767058910973],[120.71459770202637,31.27077485782638],[120.71288108825682,31.26519921720475],[120.71597099304198,31.260870532189283],[120.71528434753418,31.255514426780323],[120.71228027343751,31.253166449144743],[120.71743011474608,31.246415688164593],[120.7236099243164,31.247516388646776],[120.72738647460939,31.248763833683263],[120.72378158569336,31.256615021194033],[120.72335243225096,31.267473531456282],[120.72060585021971,31.275396520672402],[120.72094917297363,31.281925150543],[120.7163143157959,31.2811916191617]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#86f9e1\",\"fill-opacity\":0.5,\"id\":29},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.71725845336914,31.24634230767628],[120.72017669677736,31.244727922507245],[120.72429656982422,31.240545068920238],[120.7327938079834,31.23856365256558],[120.7363986968994,31.238416879330384],[120.73966026306151,31.24135230070429],[120.74163436889647,31.241792606042356],[120.74481010437012,31.242159525589464],[120.75133323669434,31.23768300973358],[120.7576847076416,31.23922412930189],[120.75940132141112,31.24083860854901],[120.75837135314941,31.242306293009186],[120.7642936706543,31.247369629323753],[120.7672119140625,31.255514426780323],[120.76798439025877,31.265345948810662],[120.75425148010252,31.258596058801725],[120.7404327392578,31.254120322102274],[120.72738647460939,31.248983969331967],[120.71725845336914,31.24634230767628]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff8080\",\"fill-opacity\":0.5,\"id\":36},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.72644233703613,31.327356291097356],[120.72648525238036,31.32697137348182],[120.72738647460939,31.327063020675897],[120.72742938995361,31.32697137348182],[120.72745084762573,31.326421488443614],[120.7292318344116,31.32660478381324],[120.73152780532835,31.32680640830763],[120.73152780532835,31.327356291097356],[120.73144197463988,31.327832853583537],[120.72897434234619,31.327557913982126],[120.72858810424803,31.32752125530791],[120.72644233703613,31.327356291097356]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff8040\",\"fill-opacity\":0.5,\"id\":17},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.62241554260254,31.340589167938578],[120.62207221984862,31.340222631311732],[120.62224388122559,31.339269629399197],[120.62301635742188,31.339489553774236],[120.62403559684753,31.339562861785012],[120.62448620796202,31.339480390268857],[120.62474370002747,31.339736968081695],[120.62531232833862,31.3399660548233],[120.62602043151854,31.34014932381501],[120.62610626220705,31.339342937581318],[120.63091278076172,31.340222631311732],[120.63048362731932,31.342348523870136],[120.62919616699217,31.342128606177948],[120.62816619873047,31.341981994097562],[120.62447547912598,31.34117562357138],[120.6239604949951,31.3424218296533],[120.6229305267334,31.342128606177948],[120.6229305267334,31.341615462896996],[120.62318801879883,31.340735782189476],[120.62241554260254,31.340589167938578]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff0080\",\"fill-opacity\":0.5,\"id\":14},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.79751014709471,31.328089463153706],[120.79579353332521,31.327246314796376],[120.79605102539062,31.324790143930933],[120.79708099365236,31.322993799294142],[120.79746723175049,31.322297248274516],[120.79987049102783,31.322773836370985],[120.80180168151855,31.323177101337563],[120.8002996444702,31.328162780045254],[120.79991340637207,31.328346072024306],[120.79751014709471,31.328089463153706]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff0080\",\"fill-opacity\":0.5,\"id\":11},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.82107067108154,31.33617230652017],[120.82143545150757,31.334816050206374],[120.82722902297974,31.33642889335365],[120.8266282081604,31.33756519806329],[120.82235813140869,31.336447220957847],[120.82222938537598,31.336703807041708],[120.82182168960571,31.33677711722287],[120.82115650177002,31.336722134592346],[120.82107067108154,31.33617230652017]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#7a6830\",\"fill-opacity\":0.5,\"id\":15},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.71425437927248,31.343008273862218],[120.71946859359741,31.344749258571063],[120.72234392166139,31.345537272636253],[120.72897434234619,31.346930025537112],[120.7421064376831,31.349678819429847],[120.74462771415712,31.350182756262768],[120.74856519699098,31.350631715894067],[120.75646162033082,31.351511304061084],[120.75955152511597,31.35178617367617],[120.75530290603639,31.368881484505557],[120.75221300125122,31.367965415923834],[120.74965953826906,31.371446429030417],[120.74827551841736,31.371327343870036],[120.7466983795166,31.371080012670163],[120.74567914009094,31.370860162168213],[120.743887424469,31.37042962011206],[120.74014306068419,31.3694036396018],[120.73470354080199,31.367837165609807],[120.72929620742798,31.366279826403524],[120.71695804595947,31.362816944397597],[120.7126235961914,31.362349720391446],[120.71213006973267,31.36232223655409],[120.71414709091187,31.342999110699548],[120.71424901485445,31.34298994753604],[120.71426510810852,31.343010564652754],[120.71427583694458,31.343008273862218],[120.71425437927248,31.343008273862218]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#a26109\",\"fill-opacity\":0.5,\"id\":4},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.70189476013184,31.36199242987868],[120.70559620857239,31.36228559142507],[120.71231245994566,31.36245049439313],[120.7141900062561,31.36261539707194],[120.71707606315613,31.362963523999433],[120.72674274444581,31.365638561583047],[120.72672128677368,31.36580345866904],[120.72365283966064,31.381357449511817],[120.71288108825682,31.38485628464715],[120.712730884552,31.381852057152688],[120.70796728134157,31.382804627493414],[120.70260286331175,31.36950440604081],[120.70206642150879,31.36411783037637],[120.70189476013184,31.36199242987868]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff8080\",\"fill-opacity\":0.5,\"id\":36},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.73285818099974,31.315294791227736],[120.73260068893433,31.31078507990786],[120.73618412017822,31.310803412504768],[120.73616266250609,31.315551434971415],[120.73285818099974,31.315294791227736]]]}},{\"type\":\"Feature\",\"properties\":{},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.71455478668213,31.343008273862242],[120.71455478668213,31.343008273862242],[120.71455478668213,31.343008273862242],[120.71455478668213,31.343008273862242]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#ff8080\",\"fill-opacity\":0.5,\"id\":36},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.72644233703613,31.327356291097356],[120.72648525238036,31.32697137348182],[120.72738647460939,31.327063020675897],[120.72742938995361,31.32697137348182],[120.72745084762573,31.326421488443614],[120.7292318344116,31.32660478381324],[120.73152780532835,31.32680640830763],[120.73152780532835,31.327356291097356],[120.73144197463988,31.327832853583537],[120.72897434234619,31.327557913982126],[120.72858810424803,31.32752125530791],[120.72644233703613,31.327356291097356]]]}},{\"type\":\"Feature\",\"properties\":{\"stroke\":\"#555555\",\"stroke-width\":2,\"stroke-opacity\":1,\"fill\":\"#555555\",\"fill-opacity\":0.5,\"id\":38},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[120.68000793457033,31.35869429948605],[120.6853723526001,31.338096690717308],[120.68528652191164,31.337473561095383],[120.68543672561644,31.337235304561183],[120.69371938705444,31.338701489051083],[120.69783926010132,31.339379591650953],[120.6991696357727,31.339746131562066],[120.70322513580322,31.340625821522707],[120.71129322052002,31.34240350321288],[120.71401834487915,31.34298994753604],[120.7120656967163,31.362340559113242],[120.70554256439208,31.36219397854004],[120.69687366485596,31.36105797134813],[120.69005012512207,31.36012350352889],[120.68615555763245,31.359555489139037],[120.68290472030638,31.35913405689022],[120.68000793457033,31.35869429948605]]]}}]}";
//		double[] result = CoordsUtil.wgs84togcj02(120.65797090530394,31.35299559043824);
//		double[] result2 = CoordsUtil.gcj02tobd09(result[0], result[1]);
//
//
//		System.out.println(result2[0]+", "+result2[1]);

		String buf = new String(xxx);
//
		String pattern = "\\[\\s*(\\d+\\.\\d+)\\s*\\,\\s*(\\d+\\.\\d+)\\s*\\]";
//
//		// 创建 Pattern 对象
		Pattern r = Pattern.compile(pattern);
//
//		// 现在创建 matcher 对象
		Matcher m = r.matcher(xxx);
		while(m.find()) {
			System.out.println("Found value: " + m.group(1) );
			String[] rs = m.group(0).split(",");

			double[] result = wgs84tobd09(Double.valueOf(m.group(1)), Double.valueOf(m.group(2)));
			System.out.println(result[0]+", "+result[1]);
			System.out.println("----------");

			buf = buf.replace(m.group(0),"[" + result[0]+", "+result[1] + "]");
		}

		System.out.println(buf);
//
		System.out.println(buf.equals(xxx));

//		double[] result = wgs84tobd09(120.604199,31.318637);
////
//		System.out.println(result[0]+", "+result[1]);
//

	}

}
